#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m1,m2;
struct abc{
	int p;
	int id;
}e1[200005],e2[200005];
int k1[100005],k2[100005];
bool cmp(abc a,abc b){
	if(a.p==b.p) return a.id<b.id;
	return a.p<b.p;
}
int main(){
	freopen("airport.in","r",stdin);
	freopen("airport.out","w",stdout);
	cin>>n>>m1>>m2;
	for(int i=1;i<=m1;i++){
		cin>>e1[i*2-1].p>>e1[i*2].p;
		e1[i*2-1].id=1;
		e1[i*2].id=2;
	}
	sort(e1+1,e1+m1*2+1,cmp);
	for(int i=1;i<=n;i++){
		int cnt=0,ans=0;
		for(int j=1;j<=m1*2;j++){
			if(e1[j].id==1){
				if(ans>=i){
					continue;
				}
				ans++;
				cnt++;
			}else{
				ans--;
			}
		}
		k1[i]=cnt;
	}
	for(int i=1;i<=m2;i++){
		cin>>e2[i*2-1].p>>e2[i*2].p;
		e2[i*2-1].id=1;
		e2[i*2].id=2;
	}
	sort(e2+1,e2+m2*2+1,cmp);
	for(int i=1;i<=n;i++){
		int cnt=0,ans=0;
		for(int j=1;j<=m1*2;j++){
			if(e2[j].id==1){
				if(ans>=i){
					continue;
				}
				ans++;
				cnt++;
			}else{
				ans--;
			}
		}
		k2[i]=cnt;
	}
	int ans=0;
	for(int i=0;i<=n;i++){
		ans=max(ans,k1[i]+k2[n-i]);
	}
	cout<<ans;
	return 0;
} 
